Programmation Client II¶

La programmation orienté objet - partie 2¶

On veut créer nos classes¶

C'est quoi encore une classe?¶

Une classe, est un ensemble de fonctions qu'on veut associer à des données que les fonctions partagent entre elles.

Les fonctions d'une classe sont appelées méthodes. Les données de la classes sont nommées attributs.

Exemple, la classe URL¶

const url = new URL("https://www.example.com/personne?nom=didier&age=38");
console.log(url.hostname)  // www.example.com
console.log(url.search);   // ?nom=didier&age=38
console.log(url.pathname)  // /personne
console.log(url.pathname)  // url.protocol

Nous on veut faire la même chose!¶

Créons notre première classe!¶

La classe qui ne fait rien!¶

class Politicien{

}

const politicien = new Politicien();
  • Politicien est un peu comme l'objet vide {}
  • On ne peut rien faire avec Politicien

La classe "Paquet de fonctions"¶

class JackOfAllTrade{
   add(a, b){
       return a + b;
   }

   multiply(a, b){
       return a * b;
   }
}

Utilisation de la classe "Paquet de fonctions"¶

const jackOfAllTrade = new JackOfAllTrade();
console.log(jackOfAllTrade.add(4, 7));
console.log(jackOfAllTrade.multiply(7, 3));

Notes importante..¶

Création d'instance¶

Pour utiliser les méthodes JackOfAllTrade il faut avant, créer une instance de la classe:

const jackOfAllTrade = new JackOfAllTrade();

Utilisation d'instance¶

L'utilisation des méthodes se fait avec la convention <instance>.<méthode>

console.log(jackOfAllTrade.add(4, 7))

Focus sur écrire un méthode:¶

class JackOfAllTrade{
   add(a, b){
       return a + b;
   }
}
  1. Les méthodes sont écrites à l'intérieur de la classe

  2. La syntaxe d'une méthode est la même que celle d'une fonction... sauf sans le mot réservé function.

  3. Une méthode est "genre" une fonction

Exercices¶

  1. Écrire une classe avec les trois méthodes suivantes
    • toSnakeCase est une fonction qui convertie une phrase en snake case. Par exemple petit lapin blanc deviendra petit_lapin_blanc
    • toKebabCase est une fonction qui convertie une phrase en kebab case. Par exemple petit lapin blanc deviendra petit-lapin-blanc
    • toCamelCase est une fonction qui convertie une phrase en camel case. Par exemple petit lapin blanc deviendra petitLapinBlanc

  1. Utiliser les méthodes pour convertir la phrase on aime javascript dans les différents types

Le mot réservé this¶

Le mot réservé "this" : cas d'écode¶

Imaginons créer ajouter une méthode add2plus5 dans la classe JackOfAllTrade

class JackOfAllTrade{
   add2plus5(a){
       return (a + 2) * 5;
   }
}
  • Cette solution est "stupide" car elle n'utilise pas les méthode add et multiply déjà existantes

Le mot réservé this : cas d'écode (suite)¶

La bonne solution est la suivante.

class JackOfAllTrade{
   add2plus5(a){
       const aPlus2 = this.add(a,2)
       return this.multiply(aPlus2, 5);
   }
}
  • La on aime ça!

Définition du mot this¶

Le mot réservé this permet à une méthode d'appeler une autre méthode dans une classe!

  • vous allez beaucoup utiliser le mot this.

Exercices¶

Constructeurs et données¶

Introduction...¶

Lorsque nous appelons new Person("didier", 38) le constructeur est appelé.

  1. Le constructeur est une fonction "spéciale" qui est uniquement appelé lors de la création d'une instance

  2. Le constructeur devrait uniquement "placer" des données

  3. Le constructeur est une méthode appelé "constructor"

Exemple classique¶

class Point{
    constructor(x, y){
       this.x = x;
       this.y = y;
    }

    distanceFromOrigin(){
        return Math.sqrt(this.x * this.x + this.y * this.y);
    }
}

Utilisation de la classe Point¶

p = new Point(3, 4);
console.log(p.distanceFromOrigin());

Didier dit¶

Un constructeur ne devrait avoir que des this.chose = chose et, peut-être, des validations très simple. Tout le reste ne devrait pas être dans un constructeur

-- le meilleur programmeur au monde

Exercices¶

In [ ]: